Chod hore
Predchádzajúca stránka Nasledujúca stránka Začiatok kapitoly Koniec kapitoly Začiatok kurzu Koniec kurzu


10.3 Prírastkový cyklus - FOR


V prípade prírastkového cyklu príkazy tela cyklu budeme vykonávať na vopred známy počet krát. V Pascale cyklus sa vykonáva pre hodnoty jednej danej premennej od jej počiatočnej hodnoty po konečnú. Túto premennú nazývame premennou cyklu. Napr.

  • pre hodnoty premennej N typu Byte od 1 po 10;
  • pre hodnoty premennej N typu Byte od 3 po 8;
  • pre hodnoty premennej Pismeno typu Char od 'A' po 'Z'.

V prvom prípade sa bude opakovať cyklus 10 krát, v druhom - 6 krát a v treťom -26 krát. V Pascale tento príkaz je realizovaný pomocou príkazu FOR.

Obr10_7


Teda FOR je vpredu testovaný cyklus, kde vopred vieme, že príkazy tela cyklu sa koľkokrát budú opakovať. Samozrejme nie je vylúčený ani prázdny cyklus. Parameter cyklu a hraničné hodnoty (Zac a Kon) musia byť kompatibilné.

Je zakázané meniť hodnotu premennej cyklu a hraničných hodnôt (začiatku a konca) v tele cyklu, vyskočiť z cyklu a skočiť do tela cyklu z miesta mimo tela cyklu (len z hľadiska dobrej štruktúrovanosti programu - prekladač nebude hlásiť chybu, ale veľmi ľahko sa stane náš program neprehľadným).

Uvedieme fragment programu, ktorý určí súčet 10 načítaných čísel:

Obr10_8

Premenná cyklu v Pascale je ordinárneho typu. Teda ním môže byť nie len celé číslo (Byte, ShortInt, Integer, Word, LongInt) ale aj znak, logická premenná atď.

Napr. vypíšme veľké písmená anglickej abecedy:

Obr10_9

V Pascale máme jedno obmedzenie - krokovať premennú cyklu môžeme iba po jednom (ale nie len smerom hore ale aj smerom dole). Teda krok môže byť aj -1, čo sa oznamuje prekladaču služobným slovom DownTo namiesto To.

Obr10_10

Táto časť vypíše veľké písmená anglickej abecedy v opačnom poradí.



10.4 Spracovanie údajov do koncového znaku

Úloha
Načítajme polomery kruhov do tej doby, kým užívateľ nezadá nulu. Nula je koncový znak. Pre každý kruh vypočítajme jeho obvod. Keď sa načíta nula, program sa má ukončiť.


Našou prvou myšlienkou by mohlo byť - načítať polomer v tele cyklu, ale v tom prípade by sme museli vložiť kontrolu na koncový znak - ak je to koncový znak -obvod nepočítať. Najvhodnejšie je tzv. prednačítanie údajov, t.j. pred cyklom ten údaj načítame, testujeme a po ďalšom načítaní už ten test sa bude automaticky vykonávať. Koncový znak by sa správne nemal spracovávať. Najvhodnejšie je ho definovať ako konštantu.

Riešenie:

Obr10_11